Computer graphics rendering is the process of converting 2D or 3D models into a generated image for a display on a display screen. For the generation 3D computer graphics, an octree may be used for partitioning a three dimensional space. This partitioning is achieved by recursively subdividing the space into eight octants, to a point where further subdivision is redundant for a given resolution.
Conventionally, the calculation and processing of the octree is conducted by general-purpose computing on graphics processing units (GPGPU). In this situation, the octree data is loaded onto a GPGPU rendering pipeline for processing. As the processing of the octree is conducted by subdivision in world space with subsequent frustum culling in world space, this process becomes impractical for a large octree due to memory limitations of the graphics processing unit(s). In order to circumvent this issue, the part of the octree that can be seen in a viewing frustum is loaded on demand. Unfortunately with dynamic viewing, this requires constant updates of the loaded portion of the octree, which becomes impractical.
An alternative solution to the issue would be to use a plurality of central processing units to create an image of the octree and display it on the electronic display screen by bit block transfer. Normally the process of determining which nodes of the octree are within the viewing frustum and transforming their contents to create the image are computationally too expensive to accomplish this at any reasonable frame rate.
It would be advantageous if a computer graphics rendering method for displaying 3D computer graphics based on data structure (such as octree) calculations was provided that overcame the problems discussed above or which is at least a useful alternative to those methods that have been known.